-- 抢红包 Lua 脚本
-- KEYS[1] = 库存 key
-- KEYS[2] = 已抢用户集合 key
-- ARGV[1] = 用户 ID

local stock = tonumber(redis.call("GET", KEYS[1]))
if not stock or stock <= 0 then
    return 0  -- 没库存
end

-- 判断用户是否已经抢过
if redis.call("SISMEMBER", KEYS[2], ARGV[1]) == 1 then
    return 2  -- 已抢过
end

-- 扣库存
redis.call("DECR", KEYS[1])

-- 记录用户
redis.call("SADD", KEYS[2], ARGV[1])

return 1  -- 成功
